不依赖U9C DLL进行用户名密码验证

2022/01/07

这篇文章发布于 1080 天前,部分信息可能已经发生变化。

不依赖任何U9 DLL,在.NET 6.0通过测试

需求:第三方系统(例:FineReport )使用U9账号+密码做登录验证:

/// <summary>
/// 用户密码转为加密密码
/// </summary>
/// <param name="inputpass">用户输入的密码</param>
/// <param name="Salt">U9加盐字段:Salt</param>
/// <param name="DBPass">U9数据库密码</param>
/// <returns></returns>
private bool PassMD5(string inputpass, string Salt, string DBPass)
{
Chilkat.Crypt2 crypt = new Chilkat.Crypt2();
crypt.HashAlgorithm = "md5";
crypt.EncodingMode = "base64";
// Output is zgv9FQWbaNZ2iIhNej0+jA== (we are now hashing 2
bytes/char)
crypt.Charset = "Unicode";
string MD5pass = crypt.HashStringENC(inputpass); //u9旧加密:md5 +
base64 + Unicode
string U9Pass = MD5pass.MDString(Salt).ToUpper(); // MD5加盐加密 加密为
32位MD5大写
return DBPass == U9Pass;
}

引用2个库:

image-20221212223451342